{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import seaborn as sns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Brand</th>\n",
       "      <th>Type</th>\n",
       "      <th>Color</th>\n",
       "      <th>Construction Year</th>\n",
       "      <th>Odometer</th>\n",
       "      <th>Ask Price</th>\n",
       "      <th>Days Until MOT</th>\n",
       "      <th>HP</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.0</td>\n",
       "      <td>blue</td>\n",
       "      <td>2002</td>\n",
       "      <td>166879</td>\n",
       "      <td>999</td>\n",
       "      <td>138</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.0</td>\n",
       "      <td>blue</td>\n",
       "      <td>1998</td>\n",
       "      <td>234484</td>\n",
       "      <td>999</td>\n",
       "      <td>346</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>black</td>\n",
       "      <td>1997</td>\n",
       "      <td>219752</td>\n",
       "      <td>500</td>\n",
       "      <td>-5</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>red</td>\n",
       "      <td>2001</td>\n",
       "      <td>223692</td>\n",
       "      <td>750</td>\n",
       "      <td>-87</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>grey</td>\n",
       "      <td>2002</td>\n",
       "      <td>120275</td>\n",
       "      <td>1650</td>\n",
       "      <td>356</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>red</td>\n",
       "      <td>2003</td>\n",
       "      <td>131358</td>\n",
       "      <td>1399</td>\n",
       "      <td>266</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>green</td>\n",
       "      <td>1999</td>\n",
       "      <td>304277</td>\n",
       "      <td>799</td>\n",
       "      <td>173</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.4</td>\n",
       "      <td>green</td>\n",
       "      <td>1998</td>\n",
       "      <td>93685</td>\n",
       "      <td>1300</td>\n",
       "      <td>0</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>white</td>\n",
       "      <td>2002</td>\n",
       "      <td>225935</td>\n",
       "      <td>950</td>\n",
       "      <td>113</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.4</td>\n",
       "      <td>green</td>\n",
       "      <td>1997</td>\n",
       "      <td>252319</td>\n",
       "      <td>650</td>\n",
       "      <td>133</td>\n",
       "      <td>75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.0</td>\n",
       "      <td>black</td>\n",
       "      <td>1998</td>\n",
       "      <td>220000</td>\n",
       "      <td>700</td>\n",
       "      <td>82</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>black</td>\n",
       "      <td>1997</td>\n",
       "      <td>212000</td>\n",
       "      <td>700</td>\n",
       "      <td>75</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>Peugeot 106</td>\n",
       "      <td>1.1</td>\n",
       "      <td>black</td>\n",
       "      <td>2003</td>\n",
       "      <td>255134</td>\n",
       "      <td>799</td>\n",
       "      <td>197</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          Brand  Type  Color  Construction Year  Odometer  Ask Price  \\\n",
       "0   Peugeot 106   1.0   blue               2002    166879        999   \n",
       "1   Peugeot 106   1.0   blue               1998    234484        999   \n",
       "2   Peugeot 106   1.1  black               1997    219752        500   \n",
       "3   Peugeot 106   1.1    red               2001    223692        750   \n",
       "4   Peugeot 106   1.1   grey               2002    120275       1650   \n",
       "5   Peugeot 106   1.1    red               2003    131358       1399   \n",
       "6   Peugeot 106   1.1  green               1999    304277        799   \n",
       "7   Peugeot 106   1.4  green               1998     93685       1300   \n",
       "8   Peugeot 106   1.1  white               2002    225935        950   \n",
       "9   Peugeot 106   1.4  green               1997    252319        650   \n",
       "10  Peugeot 106   1.0  black               1998    220000        700   \n",
       "11  Peugeot 106   1.1  black               1997    212000        700   \n",
       "12  Peugeot 106   1.1  black               2003    255134        799   \n",
       "\n",
       "    Days Until MOT  HP  \n",
       "0              138  60  \n",
       "1              346  60  \n",
       "2               -5  60  \n",
       "3              -87  60  \n",
       "4              356  59  \n",
       "5              266  60  \n",
       "6              173  57  \n",
       "7                0  75  \n",
       "8              113  60  \n",
       "9              133  75  \n",
       "10              82  50  \n",
       "11              75  60  \n",
       "12             197  60  "
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读取数据\n",
    "df = pd.read_csv('data.csv')\n",
    "df  # data frame"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Construction Year</th>\n",
       "      <th>Odometer</th>\n",
       "      <th>Ask Price</th>\n",
       "      <th>Days Until MOT</th>\n",
       "      <th>HP</th>\n",
       "      <th>Color: black</th>\n",
       "      <th>Color: blue</th>\n",
       "      <th>Color: green</th>\n",
       "      <th>Color: grey</th>\n",
       "      <th>Color: red</th>\n",
       "      <th>Color: white</th>\n",
       "      <th>Type: 1.0</th>\n",
       "      <th>Type: 1.1</th>\n",
       "      <th>Type: 1.4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2002</td>\n",
       "      <td>166879</td>\n",
       "      <td>999</td>\n",
       "      <td>138</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1998</td>\n",
       "      <td>234484</td>\n",
       "      <td>999</td>\n",
       "      <td>346</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1997</td>\n",
       "      <td>219752</td>\n",
       "      <td>500</td>\n",
       "      <td>-5</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2001</td>\n",
       "      <td>223692</td>\n",
       "      <td>750</td>\n",
       "      <td>-87</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2002</td>\n",
       "      <td>120275</td>\n",
       "      <td>1650</td>\n",
       "      <td>356</td>\n",
       "      <td>59</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2003</td>\n",
       "      <td>131358</td>\n",
       "      <td>1399</td>\n",
       "      <td>266</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>1999</td>\n",
       "      <td>304277</td>\n",
       "      <td>799</td>\n",
       "      <td>173</td>\n",
       "      <td>57</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1998</td>\n",
       "      <td>93685</td>\n",
       "      <td>1300</td>\n",
       "      <td>0</td>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2002</td>\n",
       "      <td>225935</td>\n",
       "      <td>950</td>\n",
       "      <td>113</td>\n",
       "      <td>60</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>1997</td>\n",
       "      <td>252319</td>\n",
       "      <td>650</td>\n",
       "      <td>133</td>\n",
       "      <td>75</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>1998</td>\n",
       "      <td>220000</td>\n",
       "      <td>700</td>\n",
       "      <td>82</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>1997</td>\n",
       "      <td>212000</td>\n",
       "      <td>700</td>\n",
       "      <td>75</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2003</td>\n",
       "      <td>255134</td>\n",
       "      <td>799</td>\n",
       "      <td>197</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Construction Year  Odometer  Ask Price  Days Until MOT  HP  Color: black  \\\n",
       "0                2002    166879        999             138  60             0   \n",
       "1                1998    234484        999             346  60             0   \n",
       "2                1997    219752        500              -5  60             1   \n",
       "3                2001    223692        750             -87  60             0   \n",
       "4                2002    120275       1650             356  59             0   \n",
       "5                2003    131358       1399             266  60             0   \n",
       "6                1999    304277        799             173  57             0   \n",
       "7                1998     93685       1300               0  75             0   \n",
       "8                2002    225935        950             113  60             0   \n",
       "9                1997    252319        650             133  75             0   \n",
       "10               1998    220000        700              82  50             1   \n",
       "11               1997    212000        700              75  60             1   \n",
       "12               2003    255134        799             197  60             1   \n",
       "\n",
       "    Color: blue  Color: green  Color: grey  Color: red  Color: white  \\\n",
       "0             1             0            0           0             0   \n",
       "1             1             0            0           0             0   \n",
       "2             0             0            0           0             0   \n",
       "3             0             0            0           1             0   \n",
       "4             0             0            1           0             0   \n",
       "5             0             0            0           1             0   \n",
       "6             0             1            0           0             0   \n",
       "7             0             1            0           0             0   \n",
       "8             0             0            0           0             1   \n",
       "9             0             1            0           0             0   \n",
       "10            0             0            0           0             0   \n",
       "11            0             0            0           0             0   \n",
       "12            0             0            0           0             0   \n",
       "\n",
       "    Type: 1.0  Type: 1.1  Type: 1.4  \n",
       "0           1          0          0  \n",
       "1           1          0          0  \n",
       "2           0          1          0  \n",
       "3           0          1          0  \n",
       "4           0          1          0  \n",
       "5           0          1          0  \n",
       "6           0          1          0  \n",
       "7           0          0          1  \n",
       "8           0          1          0  \n",
       "9           0          0          1  \n",
       "10          1          0          0  \n",
       "11          0          1          0  \n",
       "12          0          1          0  "
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The history saving thread hit an unexpected error (OperationalError('database or disk is full')).History will not be written to the database.\n"
     ]
    }
   ],
   "source": [
    "#清洗数据\n",
    "# 把颜色独热编码\n",
    "df_colors = df['Color'].str.get_dummies().add_prefix('Color: ')\n",
    "# 把类型独热编码\n",
    "df_type = df['Type'].apply(str).str.get_dummies().add_prefix('Type: ')\n",
    "# 添加独热编码数据列\n",
    "df = pd.concat([df, df_colors, df_type], axis=1)\n",
    "# 去除独热编码对应的原始列\n",
    "df = df.drop(['Brand', 'Type', 'Color'], axis=1)\n",
    "\n",
    "df\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'Car Price Variables')"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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9erVY926dXz66ad07NiRsWPHMnbsWLy9vVmxYgXLli3jxRdfBGD9+vVs376dpUuXUrNmTUsvlRBCiGrq+++/R6PR4OzsDICfnx9bt25l9OjRANSqVYvU1FTs7OwoKiriypUrODlV/JXFVTLh29jYcKdX/KelpdG3b18cHBwACA4OJikpySzhp6WlERcXB0CTJk1o27YtR44cAcDT0/OeyhEUFIRarcbNzY127doZj79ZxoULF5KamsqZM2fYv38/NjY25ObmcvnyZby9vQEYPHgwcKPV4pdffiEmJoY5c+ZQq1at+7giQgghHhRL++Hz8/PJz88vt97JycksYWdnZ9OwYUPjsqurKz/99JPZMXZ2duzatYv3338fV1dXunTpUuFyVckm/datW5Oenl4u6c+ZM4e0tDRjs74pnc58coy/HmswGIzN/jdvFO7G1tbW7Hg7OzvjcmFhIcHBwWRmZtKxY0fjgDzTfQCuX79ORkYGALVr12bBggXMnDmToiLlJmcRQghRcZY26S9btgxfX99yn2XLlpmf5xYVW5VKVW5d9+7d2bdvH97e3kyePLnC36tKJvwOHTpQv359EhMTjUl6z549aLVaPDw80Gg0pKSkUFxcjE6nY/369Wg0GrMYGo2GdevWAZCRkcHBgwdp167dfZUjJSUFg8HA+fPn+fnnn2nTpo1x29mzZ7GxsWHkyJFoNBp2795NWVkZderU4bHHHuO7774DIDk52ThGoFGjRvj6+vL888+zYMGCCl8fIYQQCjKoLPq89tpr7Nixo9zntddeMzuNm5sbOTn/m7E0OzsbV1dX4/Iff/zBt99+a1wOCAjg5MmTFf5aVbJJX6VSsWjRIuLj4/H390etVuPi4sKSJUto0KAB3t7eHD9+nODgYHQ6HV27di03OC4qKoqYmBjjo3VxcXFmF/KmlStXkp2dzTvvvFNuW61atejfvz86nY4pU6ZQr14947YWLVrQsmVLevfujYODAx07duTChQsAzJo1i8mTJzNz5kxcXFyYOXMmZ86cMR77/vvv4+/vT0BAAM8880ylXTchhBAP31+b7m/Hy8uLhIQEcnNzqVmzJtu3b2fq1KnG7QaDgcjISNavX4+7uztbtmzh2WefrXC5VIY7dZaLKuHtZgMViz3RLefuO1VQ33PFisX2cWiqWGyADINyXS4rf5ynWOwxHSYo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\n",
      "text/plain": [
       "<Figure size 576x432 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 数据转换\n",
    "matrix = df.corr()\n",
    "f, ax = plt.subplots(figsize=(8, 6))\n",
    "sns.heatmap(matrix, square=True)\n",
    "plt.title('Car Price Variables')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "#sns.pairplot(df[['Construction Year', 'Days Until MOT', 'Odometer', 'Ask Price']], size=2)\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/wenzheli/anaconda3/lib/python3.7/site-packages/sklearn/preprocessing/data.py:645: DataConversionWarning: Data with input dtype int64 were all converted to float64 by StandardScaler.\n",
      "  return self.partial_fit(X, y)\n",
      "/Users/wenzheli/anaconda3/lib/python3.7/site-packages/sklearn/base.py:464: DataConversionWarning: Data with input dtype int64 were all converted to float64 by StandardScaler.\n",
      "  return self.fit(X, **fit_params).transform(X)\n",
      "/Users/wenzheli/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:13: DataConversionWarning: Data with input dtype int64 were all converted to float64 by StandardScaler.\n",
      "  del sys.path[0]\n",
      "/Users/wenzheli/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py:595: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/Users/wenzheli/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py:595: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n",
      "/Users/wenzheli/anaconda3/lib/python3.7/site-packages/sklearn/utils/validation.py:595: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    },
    {
     "data": {
      "image/png": "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mDNnDkeOHOGZZ575xb7CwsIqvxdWqxWz2UxgYKDLeqgNEiZO1rt3b3bv3k1hYSE2m41du3YRFxfHqVOnOHPmDDabjU2bNhETE0NUVBTe3t4cPHgQgLS0NGJiYlzcQc21bduWPXv2UFJSglKKbdu20bVr12p70+l0REdHk56eXmXdXXXs2LFGr21D6N9sNjNu3DimTZvG2LFjK9cbas+LFy9m8+bNrF+/ngULFtChQwfefvvtX+wrNjaWtLQ0ANLT04mOjkan07msh1rhslP/jdiqVavUwIEDVb9+/dT8+fOVzWZTe/bsUYmJiapfv35q4cKFym63K6WUysrKUsnJySouLk49++yzqry83MXV3573339f9e/fXyUkJKhZs2apsrKyG/Z2/vx59fjjj6v4+Hg1duxYlZ+f7+Lqa653796Vn/Sp6Wvrrv1f7fnf//63at++vXr00Ucr/3v77beVUg2r55+/xld9+eWXVT7NdaO+8vLy1MSJE9WAAQPU8OHDr3sedyR3WhRCCOEwOcwlhBDCYRImQgghHCZhIoQQwmESJkIIIRwmYSKEEMJhEibCrZw/f5777ruPQYMGVf736KOPsnr1aoefe+LEiaxduxaAQYMGUVhYeMNti4qKGDNmTI33kZGRUWWqrCNmzpzJP//5z1p5LoB33nmn8toHIWpKZnMJt9OkSRPWr19f+Tg7O5uEhAQ6dOhA27Zta2UfP3/+6hQUFHD48OFa2Vd98fMhhULUlISJcHvh4eG0bNmS06dP891337F69WpKS0vx8/Nj2bJlrFq1ihUrVmC32wkMDGTu3Lm0adOG7OxsZs6cSU5ODs2bN8dkMlU+569+9Sv27t1LcHAw77//PuvWrUOr1dKyZUtee+01Zs2aRVlZGYMGDWLt2rWcPn2ahQsXkp+fj81m44knnmDIkCHAld/4N27cSGBgIC1btqy2B7vdzqJFizh06BDFxcUopViwYAGdO3fmwIEDvPbaa9jtduDKO6irk2ivWrx4MceOHWPp0qU0bdq0cn3fvn28/vrrhIeHc+7cOZo0acJrr71GmzZtmDlzJvn5+Zw7d45evXphMpm45557GDduHIcOHWLBggWUlpai0+l44YUX6N69OydOnLhhn6KRc/FFk0LUyLlz51SnTp2qrH311VeqS5cu6uLFi2rNmjWqS5cuqqioSCml1L59+9SoUaNUSUmJUkqpXbt2qfj4eKWUUpMnT1ZvvfWWUkqp06dPq06dOqk1a9YopZS69957lclkUp999pnq169f5ZXLixYtUkuXLq1Sh8ViUQMGDFBHjhxRSilVWFio4uPj1ddff622bt2qBgwYoIqKipTFYlETJkyocoX0z3uYOnWqstlsSqkrEwMmTpyolFJqzJgxlffEyMrKUi+//LJSSqkZM2aov//97+rll19WU6ZMqXY6wpdffqnatm2r9u/fr5RS6uOPP1aDBw+u/Ponn3yyctsZM2aof/zjH6qiokI99NBDavv27UoppQ4fPqwSEhJUeXn5DfsUQt6ZCLdz9R0BXJnCHBQUxBtvvEFkZCRw5V2Fn58fcOW+EWfOnGHEiBGVX19QUEB+fj579uxhxowZALRs2ZJu3bpdt6+9e/cSFxdHs2bNAJg1axZAlUnPp0+f5uzZs7z44otVavzuu+84ceIEffv2rawnOTmZZcuWXbef3/zmNzRr1oyVK1dy7tw59u3bV/kOIz4+nldeeYVt27bx4IMP8uyzz1Z+3YcffojJZCItLQ0vL69qv19t27YlOjq6cv+vvPIKeXl5AHTu3Pm67X/44Qc0Gg29evUCoEOHDmzcuJEff/zxhn1evUeJaLwkTITbufacybV8fX0r/99utzNo0CCmT59e+TgnJ4dmzZpdN/786n0nfs7T07PK2PDCwsLrTszbbDYCAgKq1GQ0GvH39+eNN96osg9PT89qa96xYwcLFy7k97//PX369KF169Zs2LABgBEjRtC7d28yMzPZtWsX7777buWfdenShQceeIBZs2aRkpJS7bDAa/eplKpc+/n36kY9w5WAUUrdsE8h5NNcokF76KGH+OSTT8jJyQFgxYoVPPnkkwD07NmTlJQU4Mq9uvft23fd1z/44INs3boVs9kMwF//+lc+/PBDtFotNpsNpRR33XUX3t7elT9kL126REJCAkeOHKFnz55kZGRQWFiI3W6/YQhmZmbSu3dvRo0axf33389nn31WObp8xIgRZGVlkZSUxKuvvkphYSEFBQXAlXcNjz/+OP7+/rz77rvVPvexY8c4duwYcOXe7A888AABAQE3/J61bt0aDw+PynvOHD16lCeffPIX+xRC3pmIBq1nz56MHz+esWPH4uHhgZ+fH++++y4eHh7MmzePWbNmER8fT0RERLWfBIuNjeXHH39k5MiRANx99928+uqr+Pj40K5dO+Lj41mxYgVLly5l4cKF/OMf/8BqtTJt2rTKQ0jff/89ycnJBAQE0LZt28pDTD83YsQInn/+eRITE/H09CQ6OppPP/0Uu93O888/z6JFi3j77bfRaDQ8/fTTVe7o5+HhwaJFi3jssceIjY3lgQceqPLcoaGhvP3221y4cIHg4GBef/31X/yeeXl58de//pVFixbx+uuvo9Pp+Otf/4qXl9cv9ikaN5kaLEQDtm/fPl599VU2bdrk6lJEAyeHuYQQQjhM3pkIIYRwmLwzEUII4TAJEyGEEA6TMBFCCOEwCRMhhBAOkzARQgjhMAkTIYQQDvt/L1ozlU2CVBEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1199. 1199.  700.  899.]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsRegressor\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn import preprocessing\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "import numpy as np\n",
    "\n",
    "X = df[['Construction Year', 'Days Until MOT', 'Odometer']]\n",
    "y = df['Ask Price'].values.reshape(-1, 1)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=41)\n",
    "\n",
    "X_normalizer = StandardScaler() # N(0,1)\n",
    "X_train = X_normalizer.fit_transform(X_train)\n",
    "X_test = X_normalizer.transform(X_test)\n",
    "\n",
    "y_normalizer = StandardScaler()\n",
    "y_train = y_normalizer.fit_transform(y_train)\n",
    "y_test = y_normalizer.transform(y_test)\n",
    "\n",
    "knn = KNeighborsRegressor(n_neighbors=2)\n",
    "knn.fit(X_train, y_train.ravel())\n",
    "\n",
    "#Now we can predict prices:\n",
    "y_pred = knn.predict(X_test)\n",
    "y_pred_inv = y_normalizer.inverse_transform(y_pred)\n",
    "y_test_inv = y_normalizer.inverse_transform(y_test)\n",
    "\n",
    "# Build a plot\n",
    "plt.scatter(y_pred_inv, y_test_inv)\n",
    "plt.xlabel('Prediction')\n",
    "plt.ylabel('Real value')\n",
    "\n",
    "# Now add the perfect prediction line\n",
    "diagonal = np.linspace(500, 1500, 100)\n",
    "plt.plot(diagonal, diagonal, '-r')\n",
    "plt.xlabel('Predicted ask price')\n",
    "plt.ylabel('Ask price')\n",
    "plt.show()\n",
    "\n",
    "print(y_pred_inv)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsRegressor(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "          metric_params=None, n_jobs=None, n_neighbors=2, p=2,\n",
       "          weights='uniform')"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "knn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "pred = knn.predict(X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 1.36676513,  1.36676513, -0.68269804,  0.13462294])"
      ]
     },
     "execution_count": 55,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "175.5"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_absolute_error\n",
    "\n",
    "mean_absolute_error(y_pred_inv, y_test_inv)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "56525.5"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "\n",
    "mean_squared_error(y_pred_inv, y_test_inv)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1199., 1199.,  700.,  899.])"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_pred_inv\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1300.],\n",
       "       [1650.],\n",
       "       [ 650.],\n",
       "       [ 799.]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    " y_test_inv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
